package br.com.cqipac.to;

// Generated 03/04/2008 23:45:13 by Hibernate Tools 3.2.1.GA

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * TipoNaoConformidade generated by hbm2java
 */
@Entity
@Table(name = "tb_tipo_nao_conformidade", catalog = "db_cq_ipac")
public class TipoNaoConformidade implements java.io.Serializable {

	private Integer codTipoNaoConformidade;
	private Funcionario funcionario;
	private String desTipoNaoConformidade;
	private boolean stsTipoNaoConformidade;
	private Date dtInclusao;
	private Set<NaoConformidade> naoConformidades = new HashSet<NaoConformidade>(
			0);

	public TipoNaoConformidade() {
	}

	public TipoNaoConformidade(Funcionario funcionario,
			String desTipoNaoConformidade, boolean stsTipoNaoConformidade,
			Date dtInclusao) {
		this.funcionario = funcionario;
		this.desTipoNaoConformidade = desTipoNaoConformidade;
		this.stsTipoNaoConformidade = stsTipoNaoConformidade;
		this.dtInclusao = dtInclusao;
	}

	public TipoNaoConformidade(Funcionario funcionario,
			String desTipoNaoConformidade, boolean stsTipoNaoConformidade,
			Date dtInclusao, Set<NaoConformidade> naoConformidades) {
		this.funcionario = funcionario;
		this.desTipoNaoConformidade = desTipoNaoConformidade;
		this.stsTipoNaoConformidade = stsTipoNaoConformidade;
		this.dtInclusao = dtInclusao;
		this.naoConformidades = naoConformidades;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "cod_tipo_nao_conformidade", unique = true, nullable = false)
	public Integer getCodTipoNaoConformidade() {
		return this.codTipoNaoConformidade;
	}

	public void setCodTipoNaoConformidade(Integer codTipoNaoConformidade) {
		this.codTipoNaoConformidade = codTipoNaoConformidade;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "cod_funcionario_inclusao", nullable = false)
	public Funcionario getFuncionario() {
		return this.funcionario;
	}

	public void setFuncionario(Funcionario funcionario) {
		this.funcionario = funcionario;
	}

	@Column(name = "des_tipo_nao_conformidade", nullable = false, length = 45)
	public String getDesTipoNaoConformidade() {
		return this.desTipoNaoConformidade;
	}

	public void setDesTipoNaoConformidade(String desTipoNaoConformidade) {
		this.desTipoNaoConformidade = desTipoNaoConformidade;
	}

	@Column(name = "sts_tipo_nao_conformidade", nullable = false)
	public boolean isStsTipoNaoConformidade() {
		return this.stsTipoNaoConformidade;
	}

	public void setStsTipoNaoConformidade(boolean stsTipoNaoConformidade) {
		this.stsTipoNaoConformidade = stsTipoNaoConformidade;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "dt_inclusao", nullable = false, length = 19)
	public Date getDtInclusao() {
		return this.dtInclusao;
	}

	public void setDtInclusao(Date dtInclusao) {
		this.dtInclusao = dtInclusao;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "tipoNaoConformidade")
	public Set<NaoConformidade> getNaoConformidades() {
		return this.naoConformidades;
	}

	public void setNaoConformidades(Set<NaoConformidade> naoConformidades) {
		this.naoConformidades = naoConformidades;
	}

}
